<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>
  <script>
    // Promise的链式调用 ==> then方法的返回值
    // 上一个 .then() 方法中返回了一个新的Promise 实例对象，则可以通过下一个 .then() 继续进行处理
    const p = new Promise((resolve) => {
      setTimeout(() => {
        resolve('第一个Promise对象')
      }, 2000);
    })
    p.then((res) => {
      console.log('第一个then方法执行',res);
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve('第二个Promise')
        }, 2000);
      })
    }).then((res) => {
      console.log('第二个then方法执行',res);
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve('第三个Promise')
        }, 2000);
      })
    }).then((res) => {
      console.log('第三个then方法执行',res);
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve('第四个Promise')
        }, 2000);
      })
    })
  </script>
</body>

</html>